package csm.api.search;

/**
 * Open Api 검색을 실행하는 검색자 클래스의 인터페이스 정의 입니다.
 * @author seungmun
 * @since 2014. 2. 7.
 *
 */
public interface ISearchProvider
{
    /**
     * 현재 검색자에 새로운 검색요청정보를 입력합니다.
     * @param request
     */
    void setRequest(SearchRequest request);
    /**
     * 현재 검색자에 입력된 검색요청정보 객체를 가졉옵니다.
     * @return
     */
    SearchRequest getRequest();

    /**
     * 검색요청정보를 기초로 하여, 검색을 수행하고, 결과를 가져옵니다.
     * @return
     */
    ISearchResult search() throws Exception;
}
